home *** CD-ROM | disk | FTP | other *** search
-
-
-
- DDDDLLLLAAAAEEEEDDDDAAAA((((3333FFFF)))) DDDDLLLLAAAAEEEEDDDDAAAA((((3333FFFF))))
-
-
-
- NNNNAAAAMMMMEEEE
- DLAEDA - compute the Z vector corresponding to the merge step in the
- CURLVLth step of the merge process with TLVLS steps for the CURPBMth
- problem
-
- SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
- SUBROUTINE DLAEDA( N, TLVLS, CURLVL, CURPBM, PRMPTR, PERM, GIVPTR,
- GIVCOL, GIVNUM, Q, QPTR, Z, ZTEMP, INFO )
-
- INTEGER CURLVL, CURPBM, INFO, N, TLVLS
-
- INTEGER GIVCOL( 2, * ), GIVPTR( * ), PERM( * ), PRMPTR( * ),
- QPTR( * )
-
- DOUBLE PRECISION GIVNUM( 2, * ), Q( * ), Z( * ), ZTEMP( * )
-
- PPPPUUUURRRRPPPPOOOOSSSSEEEE
- DLAEDA computes the Z vector corresponding to the merge step in the
- CURLVLth step of the merge process with TLVLS steps for the CURPBMth
- problem.
-
-
- AAAARRRRGGGGUUUUMMMMEEEENNNNTTTTSSSS
- N (input) INTEGER
- The dimension of the symmetric tridiagonal matrix. N >= 0.
-
- TLVLS (input) INTEGER
- The total number of merging levels in the overall divide and
- conquer tree.
-
- CURLVL (input) INTEGER The current level in the overall merge
- routine, 0 <= curlvl <= tlvls.
-
- CURPBM (input) INTEGER The current problem in the current level in
- the overall merge routine (counting from upper left to lower
- right).
-
- PRMPTR (input) INTEGER array, dimension (N lg N) Contains a list
- of pointers which indicate where in PERM a level's permutation is
- stored. PRMPTR(i+1) - PRMPTR(i) indicates the size of the
- permutation and incidentally the size of the full, non-deflated
- problem.
-
- PERM (input) INTEGER array, dimension (N lg N)
- Contains the permutations (from deflation and sorting) to be
- applied to each eigenblock.
-
- GIVPTR (input) INTEGER array, dimension (N lg N) Contains a list
- of pointers which indicate where in GIVCOL a level's Givens
- rotations are stored. GIVPTR(i+1) - GIVPTR(i) indicates the
- number of Givens rotations.
-
-
-
-
- PPPPaaaaggggeeee 1111
-
-
-
-
-
-
- DDDDLLLLAAAAEEEEDDDDAAAA((((3333FFFF)))) DDDDLLLLAAAAEEEEDDDDAAAA((((3333FFFF))))
-
-
-
- GIVCOL (input) INTEGER array, dimension (2, N lg N) Each pair of
- numbers indicates a pair of columns to take place in a Givens
- rotation.
-
- GIVNUM (input) DOUBLE PRECISION array, dimension (2, N lg N) Each
- number indicates the S value to be used in the corresponding
- Givens rotation.
-
- Q (input) DOUBLE PRECISION array, dimension (N**2)
- Contains the square eigenblocks from previous levels, the starting
- positions for blocks are given by QPTR.
-
- QPTR (input) INTEGER array, dimension (N+2)
- Contains a list of pointers which indicate where in Q an
- eigenblock is stored. SQRT( QPTR(i+1) - QPTR(i) ) indicates the
- size of the block.
-
- Z (output) DOUBLE PRECISION array, dimension (N)
- On output this vector contains the updating vector (the last row
- of the first sub-eigenvector matrix and the first row of the
- second sub-eigenvector matrix).
-
- ZTEMP (workspace) DOUBLE PRECISION array, dimension (N)
-
- INFO (output) INTEGER
- = 0: successful exit.
- < 0: if INFO = -i, the i-th argument had an illegal value.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- PPPPaaaaggggeeee 2222
-
-
-
-